package com.zking.ssm.PMQ.controller;

import com.zking.ssm.PMQ.model.Role;
import com.zking.ssm.PMQ.model.User;
import com.zking.ssm.PMQ.service.IRoleService;
import com.zking.ssm.PMQ.service.IUserService;
import com.zking.ssm.util.JsonData;
import com.zking.ssm.util.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/User")
public class UserController {
    @Autowired
    private IUserService userService;
    @Autowired
    private IRoleService roleService;

    private JsonData jsonData;

    public UserController() {
    }

    @RequestMapping(value = "/list", method = {RequestMethod.GET, RequestMethod.POST})
    @ResponseBody
    public JsonData toListUser(User user, PageBean pageBean) {
        List<User> list = userService.listUser(user, pageBean);
        JsonData jsonData = new JsonData();
        jsonData.setRows(pageBean.getRows());
        jsonData.setPage(pageBean.getPage());
        jsonData.setTotal(pageBean.getTotal());
        jsonData.setCode(0);
        jsonData.setMessage("查询成功");
        jsonData.setResult(list);
        System.out.println("hh");
        return jsonData;
    }


    //添加管理员
    @RequestMapping("/toAdd")
    @ResponseBody
    public JsonData toAddUser(User user) {
        System.out.println("hhh");
        JsonData jsonData = new JsonData();
        int i = userService.insert(user);
//        System.out.println(user.getUsrId());
        if (i > 0) {
            user.setUsrId(user.getUsrId());
            int a = userService.insertUserRole(user);
            if (0 < a) {
                jsonData.setCode(0);
                jsonData.setMessage("管理员创建成功");
            } else {
                jsonData.setMessage("管理员角色未分配,默认普通用户");
            }
        }else{
            jsonData.setMessage("管理员创建失败");
        }
        return jsonData;
    }

    //删除管理员
    @RequestMapping("/toDelete")
    @ResponseBody
    public JsonData toDelete(Long usrId) {
        System.out.println("来了老弟");
        int b = userService.revokeCategory(usrId);
        int a = userService.deleteByPrimaryKey(usrId);
        JsonData jsonData = new JsonData();
        if (a > 0) {
            jsonData.setCode(0);
            jsonData.setMessage("管理员删除成功");
        } else {
            jsonData.setMessage("管理员删除失败");
        }
        return jsonData;
    }

    //批量删除管理员
    @RequestMapping("/toRemoves")
    @ResponseBody
    public JsonData toRemoves(User user) {
        System.out.println("来了");
        userService.deleteAll(user);
        userService.deletes(user);
        JsonData jsonData = new JsonData();
        jsonData.setCode(0);
        jsonData.setMessage("管理员删除成功");
        return jsonData;
    }

    //查询单个管理员
    @RequestMapping("/toGet")
    @ResponseBody
    public JsonData toGet(Long usrId){
        User user = userService.selectByPrimaryKey(usrId);
        Role role = roleService.listUserRole(usrId);
        user.setRoleId(role.getRoleId());
        JsonData jsonData = new JsonData();
        jsonData.setCode(0);
        jsonData.setResult(user);
        jsonData.setMessage("管理员查询成功");
        return jsonData;
    }

    //修改管理员信息
    @RequestMapping("/toUpdate")
    @ResponseBody
    public JsonData toUpdate(User user){
        System.out.println("来了老弟jjj");
       int a = userService.updateByPrimaryKey(user);

       int b = userService.updateRole(user);
           JsonData jsonData = new JsonData();
           jsonData.setCode(0);
           jsonData.setMessage("管理员修改成功");

        return jsonData;
    }
}